package com.aiiter.house.mapper;

import java.util.List;
import com.aiiter.house.domain.HouseBillingInformation;
import com.aiiter.house.domain.HouseChargeItem;
import com.aiiter.house.domain.vo.HomeStatistics;

/**
 * 存储账单的基本信息，包括房产、房主、租户的关联Mapper接口
 * 
 * @author yaocheng
 * @date 2024-08-13
 */
public interface HouseBillingInformationMapper 
{
    /**
     * 查询账单
     *
     * @param billId 账单主键
     * @return 账单
     */
    public HouseBillingInformation selectHouseBillingInformationByBillId(Long billId);

    /**
     * 查询账单列表
     *
     * @param houseBillingInformation 账单
     * @return 账单集合
     */
    public List<HouseBillingInformation> selectHouseBillingInformationList(HouseBillingInformation houseBillingInformation);

    /**
     * 新增账单
     *
     * @param houseBillingInformation 账单
     * @return 结果
     */
    public int insertHouseBillingInformation(HouseBillingInformation houseBillingInformation);

    /**
     * 修改账单
     *
     * @param houseBillingInformation 账单
     * @return 结果
     */
    public int updateHouseBillingInformation(HouseBillingInformation houseBillingInformation);

    /**
     * 删除账单
     *
     * @param billId 账单主键
     * @return 结果
     */
    public int deleteHouseBillingInformationByBillId(Long billId);

    /**
     * 批量删除账单
     *
     * @param billIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHouseBillingInformationByBillIds(Long[] billIds);

    /**
     * 批量删除账单明细
     *
     * @param billIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHouseChargeItemByBillIds(Long[] billIds);

    /**
     * 批量新增账单明细
     *
     * @param houseChargeItemList 账单明细列表
     * @return 结果
     */
    public int batchHouseChargeItem(List<HouseChargeItem> houseChargeItemList);


    /**
     * 通过账单主键删除账单明细信息
     *
     * @param billId 账单ID
     * @return 结果
     */
    public Integer deleteHouseChargeItemByBillId(Long billId);
    /**
     * 查询本月收入
     * @return
     */
    public Double  selectTncomeMonth();

    public HomeStatistics selectAllBill();


}
